package com.chenjt.six_rag.utils;

import dev.langchain4j.data.document.Document;
import dev.langchain4j.data.document.DocumentSplitter;
import dev.langchain4j.data.segment.TextSegment;

import java.util.ArrayList;
import java.util.List;

/**
 * 注释：自定义分割器，分割的规则是按两个换行符去分割
 * 将meituan-question.txt这个文件内容按两个换行符去分割，
 * 将分割的内容转成segment
 *
 * @author chenjt
 * @date 2025/3/11 10:57
 */
public class MyDocumentSplitter implements DocumentSplitter {

    // 分割规则：两个换行符
    public static final String SPLIT_EXP = "\\s*\\R\\s*\\R\\s*";

    @Override
    public List<TextSegment> split(Document document) {

        List<TextSegment> segments = new ArrayList<>();

        String[] parts = document.text().split(SPLIT_EXP);
        for(String part : parts){
            segments.add(TextSegment.from(part));
        }

        return segments;
    }

}
